/*
 题目:
 实现双色球抽奖游戏中奖号码的生成，
 中奖号码由 6 个红球号码和 1 个蓝球号码组成。
 其中红球号码要求随机生成 6 个 1~33 之间不重复的随机号码。
 其中蓝球号码要求随机生成 1 个 1~16 之间的随机号码。
 */

import java.util.Random;

public class Game {

    public static void main(String[] args) {

        // 0. 创建随机数生成器
        Random ra = new Random();
        // 1. 创建一个长度为6的一维int数组，用于储存 6个红球的号码
        int red_nums[] = new int[6];
        // 2. 为了生成6个不重复的红球号码，创建一个长度为33的boolean数组，对应33个号码的抽取情况
        //    它们的初始默认值均为false， 含义为： 这些号码尚未被抽中过
        boolean flags[] = new boolean[33];

        // 3. 创建一个变量，用于储存蓝球的号码
        int blue_num;

        // 4. 生成随机号码并输出结果
        System.out.println("欢迎来到双色球抽奖游戏！下面为您生成一组中奖号码：");

        // 生成6个红球的号码:
        int count = 0; // 用于记录有效的号码的个数 （重复的号码，视作无效）
        while (count < red_nums.length){
            int num = ra.nextInt(33)+1;
            // 放入不重复的随机数，作为红球号码的结果:
            if (flags[num-1] == false){
                red_nums[count] = num;
                flags[num-1] = true;
                count++;
            }
        }
        // 生成蓝球号码：
        blue_num = ra.nextInt(16)+1;
        // 输出结果
        System.out.print("红球号码为：");
        for (int i = 0; i < red_nums.length; i++) {
            System.out.print(red_nums[i] + " ");
        }
        System.out.println("\n蓝球号码为：" + blue_num);
    }
}